package zhiquan.cai.lambda;

import java.util.Arrays;
import java.util.List;

public class Person {
    private Integer id;
    private String usernname;

    public Person(Integer id, String usernname) {
        this.id = id;
        this.usernname = usernname;
    }

    //PersonCallback为匿名内部类
    public static void create(Integer id,String usernname,PersonCallback personCallback){
        Person person = new Person(id,usernname);
        personCallback.callback(person);
    }

    public static void main(String[] args) {

        /**
         * 传入一个动作行为 - 使用匿名内部类实现的方式
         * @param args
         */
        Person.create(1,"vegeta",new PersonCallback(){
            @Override
            public void callback(Person person) {
                System.out.println(person.usernname+"签到成功！");
            }

        });

        /**
         * 传入一个动作行为 - 使用Lamada表达式实现的方式
         * @param args
         *
         * Lambda表达式的标准格式
         * (逗号分隔的参数列表) ‐> { 函数体 }
         */
        Person.create(2,"chenzi",person -> System.out.println(person.usernname+"签到成功！"));

        List<Integer> ints = Arrays.asList(1,2,3,4,5);
        ints.forEach(((Integer integer) -> { System.out.println(integer); }));
        ints.forEach((integer -> System.out.println(integer)));
        ints.forEach(System.out::println);

    }
}
